#pragma once
enum VMAC_OP{
    VFMULD, //op = 00_1000_0000, execution cycle = 4
    VFMULS32, //op = 00_0100_0000, execution cycle = 4
    VFMULAD, //op = 0_1000, execution cycle = 6
    VFMULAS32, //op = 0_0100, execution cycle = 6
    VFMULBD, //op = 0_1100, execution cycle = 6
    VFMULBS32, //op = 0_0010, execution cycle = 6
    VFDOT32, //op = 00_1100_0000, execution cycle = 6
    VFCREAL32, //op = 00_0010_0000, execution cycle = 6
    VFCIMAG32, //op = 00_1010_0000, execution cycle = 6
    VFADDH16, //op = 11_0000_0000, execution cycle = 4
    VFSUBH16, //op = 11_0000_0001, execution cycle = 4
    VFMULH16, //op = 11_0000_0010, execution cycle = 4
    VFMULAH16, //op = 01110, execution cycle = 6
    VFMULBH16, //op = 01111, execution cycle = 6
    VFCMPEH16, //op = 11_0000_0011, execution cycle = 1
    VFCMPGH16, //op = 11_0000_0100, execution cycle = 1
    VFCMPLH16, //op = 11_0000_0101, execution cycle = 1
    VFHINT16, //op = 11_1000_0000, execution cycle = 3
    VFHTRU16, //op = 11_1000_0001, execution cycle = 3
    VFINTH16, //op = 11_1000_0010, execution cycle = 3
    VFINTHU16, //op = 11_1000_0011, execution cycle = 3
    VFSPHP16, //op = 11_1000_0100, execution cycle = 3
    VFHPSP16L, //op = 11_1000_0101, execution cycle = 1 OR 3 (正文与简表不同)
    VFHPSP16H, //op = 11_1000_1111, execution cycle = 1 OR 3 (正文与简表不同)
    VFMANH16, //op = 11_1000_0110, execution cycle = 1
    VFLOGH16, //op = 11_1000_0111, execution cycle = 1
    VFABSH16, //op = 11_1000_1000, execution cycle = 1
    VFMAX16, //op = 11_0000_1010, execution cycle = 1
    VFEXTS32L, //op = 11_1000_1001, execution cycle = 1
    VFEXTS32H, //op = 11_1000_1010, execution cycle = 1
    VFEXTH16LL, //op = 11_1000_1011, execution cycle = 1
    VFEXTH16LH, //op = 11_1000_1100, execution cycle = 1
    VFEXTH16HL, //op = 11_1000_1101, execution cycle = 1
    VFEXTH16HH, //op = 11_1000_1110, execution cycle = 1
    VMOV_VMAC, //op = 01_110_00000, execution cycle = 1
    VMOVI_VMAC, //op 80位指令, execution cycle = 1
    VFCMPED, //op = 10_00_000_0_00, execution cycle = 1
    VFCMPES32, //op = 10_00_000_1_00, execution cycle = 1
    VFCMPGD, //op = 10_00_001_0_00, execution cycle = 1
    VFCMPGS32, //op = 10_00_001_1_00, execution cycle = 1
    VFCMPLD, //op = 10_00_010_0_00, execution cycle = 1
    VFCMPLS32, //op = 10_00_010_1_00, execution cycle = 1
    VFDINT, //op = 10_10_000_0_00, execution cycle = 3
    VFSINT32, //op = 10_10_000_1_00, execution cycle = 3
    VFDTRU, //op = 10_10_001_0_00, execution cycle = 3
    VFSTRU32, //op = 10_10_001_1_00, execution cycle = 3
    VFINTD, //op = 10_10_010_0_00, execution cycle = 3
    VFINTDU, //op = 10_10_011_0_00, execution cycle = 3
    VFINTS32, //op = 10_10_010_1_00, execution cycle = 3
    VFINTSU32, //op = 10_10_011_1_00, execution cycle = 3
    VFDPSP32, //op = 10_10_100_0_00, execution cycle = 3
    VFSPDP32T, //op = 10_10_101_1_00, execution cycle = 1
    VFSPHDP32T, //op = 10_10_101_0_00, execution cycle = 1
    VFMAND, //op = 10_11_000_0_00, execution cycle = 1
    VFMANS32, //op = 10_11_000_1_00, execution cycle = 1
    VFLOGD, //op = 10_11_001_0_00, execution cycle = 1
    VFLOGS32, //op = 10_11_001_1_00, execution cycle = 1
    VFABSD, //op = 10_11_010_0_00, execution cycle = 1
    VFABSS32, //op = 10_11_010_1_00, execution cycle = 1
    VFRSQD, //op = 10_11_011_0_00, execution cycle = 1
    VFRSQS32, //op = 10_11_011_1_00, execution cycle = 1
    VFRCPD, //op = 10_11_100_0_00, execution cycle = 1
    VFRCPS32, //op = 10_11_100_1_00, execution cycle = 1
    //TODOszy:补全VMAC的全部操作,指令的执行周期
};